package org.wdcode.base.params;

import org.wdcode.common.params.WdParams;

/**
 * WdBase包所用参数读取类
 * @author WD
 * @since JDK6
 * @version 1.0 2010-1-5
 */
public final class WdBaseParams extends WdParams {
	/* 读取配置变量 */
	/* 分页使用 */
	private static String		pageFlag		= "page.currentPage";	// 隐藏的当前页的标识(就是隐藏表单域的id和name)
	private static int			pageSize		= 20;					// 分页显示的多少

	/* Entity实体使用 */
	private static Short		entityState;							// 实体状态

	/* 读取配置字符串 */
	/* 分页使用 */
	private final static String	PAGE_FLAG		= "page.flag";			// 隐藏的当前页的标识(就是隐藏表单域的id和name)
	private final static String	PAGE_SIZE		= "page.size";			// 分页显示的多少

	/* Entity实体 */
	private final static String	ENTITY_STATE	= "entity.state";		// 实体状态

	// 静态初始化
	static {
		read();
	}

	/**
	 * 读取参数配置
	 */
	public final static void read() {
		/* 分页使用 */
		pageFlag = getString(PAGE_FLAG, pageFlag);
		pageSize = getInt(PAGE_SIZE, pageSize);

		/* Entity使用 */
		entityState = getShort(ENTITY_STATE, entityState);
	}

	/**
	 * 实体状态,Entity类使用<br/>
	 * 需在配置文件中配置,如果不配置或配置不对将优先使用null<br/>
	 * <h2>配置方式如下: <br/>
	 * Properties: entity.state = ? <br/>
	 * XML: {@literal <entity><state>?</state></entity>}</h2>
	 * @see org.wdcode.base.bean.EntityBean
	 * @return 实体状态
	 */
	public final static Short getEntityState() {
		return entityState;
	}

	/**
	 * 设置实体状态
	 * @param state 实体状态
	 */
	public final static void setEntityState(Short state) {
		entityState = state;
		setProperty(ENTITY_STATE, entityState);
	}

	/**
	 * 获得隐藏的当前页的标识(就是隐藏表单域的id和name) 分页标签使用<br/>
	 * 需在配置文件中配置,如果不配置或配置不对将优先使用page.currentPage<br/>
	 * <h2>配置方式如下: <br/>
	 * Properties: page.flag = ? <br/>
	 * XML: {@literal <page><flag>?</flag></page>}</h2>
	 * @see org.wdcode.web.tag.Pagination
	 * @return 分页使用当前页的标识
	 */
	public final static String getPageFlag() {
		return pageFlag;
	}

	/**
	 * 获得分页大小,PageBean使用.<br/>
	 * 需在配置文件中配置,如果不配置或配置不对将优先使用10<br/>
	 * <h2>注: 取值是大于0的正整数 配置方式如下: <br/>
	 * Properties: page.size = ? <br/>
	 * XML: {@literal <page><size>?</size></page>}</h2>
	 * @see org.wdcode.base.bean.PageBean
	 * @return 分页大小
	 */
	public final static int getPageSize() {
		return pageSize;
	}

	/**
	 * 设置分页大小
	 * @param size 分页大小
	 */
	public final static void setPageSize(int size) {
		pageSize = size;
		setProperty(PAGE_SIZE, pageSize);
	}

	/**
	 * 设置分页标签id name
	 * @param flag 分页标签id name
	 */
	public final static void setPageFlag(String flag) {
		pageFlag = flag;
		setProperty(PAGE_FLAG, pageFlag);
	}

	/**
	 * 私有构造
	 */
	private WdBaseParams() {}
}
